
`timescale 1ns / 1ps

`define ZERO_WORD  64'h00000000_00000000
`define PC_START   64'h00000000_80000000  
`define PC_START_RESET = (`PC_START - 4)
`define REG_BUS    63 : 0     
`define INST_ADD   8'h11

`define AXI_ADDR_WIDTH      32
`define AXI_DATA_WIDTH      64
`define AXI_ID_WIDTH        4
`define AXI_USER_WIDTH      1

//ALU_operation
`define ALU_ADD   8'h11
`define ALU_SUB   8'h12
`define ALU_XOR   8'h21
`define ALU_OR    8'h22
`define ALU_AND   8'h23
`define ALU_SLT   8'h31
`define ALU_SLTU  8'h32
`define ALU_SLL   8'h41
`define ALU_SRL   8'h42
`define ALU_SRA   8'h43

//branch_type
`define B_EQ    3'b001
`define B_NE    3'b010
`define B_LT    3'b011
`define B_GE    3'b100
`define B_LTU   3'b101
`define B_GEU   3'b110

`define SIZE_B              2'b00
`define SIZE_H              2'b01
`define SIZE_W              2'b10
`define SIZE_D              2'b11

`define REQ_READ            1'b0
`define REQ_WRITE           1'b1

`define RISCV_PRIV_MODE_U   0
`define RISCV_PRIV_MODE_S   1
`define RISCV_PRIV_MODE_M   3
